1. Field of the Invention
This invention relates to computer systems and, more particularly, to application redeployment in utility computing environments.
2. Description of the Related Art
Many business organizations and governmental entities rely upon applications that access large amounts of data, often exceeding many terabytes of data, for mission-critical applications. Often, the costs of maintaining the computing and storage resources, as well as the software, required to support such applications may be substantial. Service organizations supporting the application may be required to accurately account for resource usage by different internal and external customers, so that the customers may be billed or charged according to their levels of resource consumption. Some enterprises are gradually moving away from maintaining traditional in-house data centers to leasing or renting resources in external data centers for at least a portion of their computing needs.
In response to the need for pay-per-use accounting of resource usage, a number of “utility computing models” have been developed, in which the use of computing resources such as processors and disks may be “metered” in the way traditional utilities such as electric power and water are metered. One difficulty with such models is the heterogeneity and complexity of mapping resource usage to specific users. Data centers may include hundreds or thousands of devices, any of which may be deployed for use with a variety of complex applications at different times. The resources being used by a particular application may change dynamically and rapidly, and may be spread over a large number of devices. A variety of existing tools and techniques may be available at each device to monitor usage—for example, different tools may be supported on mainframe computer systems than on UNIX-based servers or personal computers. The granularity at which resource usage measurement is possible may also differ from device to device; for example, in some environments, it may be possible to measure the response time of individual disk accesses, while in other environments only summaries or averages of disk access times may be obtained. The amount of resource usage data gathered from different sources via different interfaces, in different units and at different levels of granularity may be so large that it may become difficult to organize and use the data for purposes such as capacity planning or consolidation analysis without a unifying framework.
In particular, as the complexity and heterogeneity of utility computing data centers grows, it may become increasingly difficult to ensure that the physical and logical resources available are being utilized in a cost-effective way. For example, because of deadline pressures and the need to interact with different sets of external vendors and/or internal experts, applications may typically be deployed on dedicated sets of hosts and devices. That is, a first application or application service may be deployed on a first set of servers and devices, and a second application on a second set of servers. Data center managers may typically not have enough information to justify or suggest a consolidation of existing services on a subset of the existing equipment being used (or on new, cheaper equipment), even though the desired quality of service for the various applications may be supportable at a lower total cost. If some existing servers at the data center are found to be underutilized under typical usage conditions, for example, it may be possible to migrate the applications running on such servers to other servers and eliminate the original servers, thereby reducing overall costs. A mechanism providing data justifying migration or consolidation of applications in a cost-effective manner may help to improve the return on investment (ROI) for data centers.